package cn.com.nes.site.service.workOrder.dto;

import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 维修工单DTO
 *
 * @Author: ShenWei
 * @Date: 2024/03/08/10:53
 */
@Data
@NoArgsConstructor
public class RepairWorkOrderDto {
    private String manufactureId;
    private String stationName;//网点名称
    private String repairType;//维修类型
    private String repairTypeName;//维修类型
    private Double repairPrice;//维修价格
    private Double distance;//导航距离
    private Double baseDistance;//基础距离
    private Double roundTrip;//是否往返计费
    private Double pricePerKM;//每公里补贴金额
    private Double distanceMoney;//距离补贴
    private int auditStatus;//审核状态
    private String auditComments;//审核备注
    private String auditTime;//审核时间
    private int isReturnVisit; //是否回访
    private String faultType;//故障类型
    private String faultTypeName;//故障类型名称
    private String partId;//备件id
    private String partName;//备件名称
    private String personliable;//责任方
    private String sendOrderStatus;//派单审核字段
    private String closingreason;//工单关闭原因
    private String orderdirectorid;//派单负责人id
    private String orderdirectorName;//派单负责人姓名
    private String workOrderSource; // gdly;//工单来源
    private String workOrderId; // 工单号
    private String equipmentTypeName; // sblx; // 设备类型名称
    /**
     * 设备型号
     */
    private String equipmentModel; // sbxh;
    /**
     * 联系人
     */
    private String contact;
    /**
     * 联系电话
     */
    private String contactPhone;
    /**
     * 创建人
     */
    private String createUserName; // cjr;
    /**
     * 接单人
     */
    private String takingOrderUserName; // jdr;
    /**
     * 接单人电话
     */
    private String takingOrderUserPhone; // jdrdh;
    /**
     * 工单地址
     */
    private String address;
    /**
     * 工单状态 (0:创建工单;1:待分配;2:待接单;3:未到达;4:待维修;5:待评价;6:已完成;7:已取消)
     */
    private Integer status;
    /**
     * 工单状态名称
     */
    private String statusName;
    /**
     * 故障代码
     */
    private String faultCodes; // gzdm;
    /**
     * 故障描述
     */
    private String faultRemark; // gzms;
    /**
     * 图片
     */
    private String images;

    private List<String> imagesReal;

    private List<String> imagesRealBig;

    /**
     * 评分
     */
    private Double jsxScore;
    /**
     * 评价
     */
    private String pjContent;

    private String pmtImages;

    /**
     * 项目内容
     */
    private String xmnr;

    /**
     * 项目地址
     */
    private String xmdz;

    /**
     * 项目名称
     */
    private String xmmc;

    /**
     * 项目简称
     */
    private String projectShortName; // xmjc;

    private List<String> pmtImagesReal;

    private List<String> pmtImagesRealBig;

    private String sjtImages;

    private List<String> sjtImagesReal;

    private List<String> sjtImagesRealBig;

    private String aztImages;

    private List<String> aztImagesReal;

    private List<String> aztImagesRealBig;

    private String repairsImages;

    private List<String> repairsImagesReal;

    private List<String> repairsImagesRealBig;

    private Double[] lnglat;

    private Double jd;

    private Double wd;

    private Double userJd;

    private Double userWd;

    private Double[] userLnglat;

    private Date bxsj;

    private String gdlx;

    private String gddj;

    private Integer clsx;

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;

    @JSONField(serializeFeatures = JSONWriter.Feature.WriteNullListAsEmpty)
    private List<Map<String, String>> equipmentInfoList;

    private Integer editable = 0;

    private List<UsedPartDto> usedParts;

    private String refrigerantTypeId;
    private String refrigerantType;

    private BigDecimal refrigerantPrice;

    private BigDecimal refrigerantAmount;

    private String desc;
    private String handleDesc;
    private String stationPhone;

    private String gdlyId;

    private BigDecimal totalPrice;

    private String refrigerantUnitPrice;

    private String auditLevel;

    private String paymentStateDesc;

    private String paymentState;

    // 修完时间
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date repairDoneTime;
}
